Skip to content

Update libwebrtc to m144 and fix audio device lifecycle/processing#5958

Merged
roxanneskelly merged 2 commits into
release/26.3from
roxie/webrtc-m144
Jul 7, 2026
Merged

Update libwebrtc to m144 and fix audio device lifecycle/processing#5958
roxanneskelly merged 2 commits into
release/26.3from
roxie/webrtc-m144

Conversation

@roxanneskelly

Copy link
Copy Markdown
Contributor

Description

  • Update libwebrtc to version m144 (autobuild.xml).
  • Use WebRTC's software APM exclusively; disable built-in (hardware/OS) AEC/AGC/NS, including after each device (re)deploy.
  • Only run the output device once a peer connection's audio is established (and bring devices up with the user's selected device at that point), fixing the buzz heard before/without an active connection.
  • Keep capture warm across mute/unmute to avoid the AEC cold-start hiss; stop recording 30s after a sustained mute so the OS mic indicator clears.
  • Reliably (re)select and (re)start capture/playout after teleport or voice restart so audio sends/records again.
  • Don't suspend the voice channel when entering tuning mode (Vivox-era behavior that dropped the peer connection).

Related Issues

improves #5953 - reduced the chance of hisses occurring
closes #5825 - removed some old vivox code that dropped calls when editing audio settings


Test Guidance

In addition to the reproduction steps for #5953 and #5825, this will need a thorough voice test run, as we updated libwebrtc.
This includes:

  • Device handling
  • Teleports
  • cross-region
  • p2p/adhoc/group
  • etc.

@github-actions github-actions Bot added the c/cpp label Jun 26, 2026
@roxanneskelly roxanneskelly requested a review from akleshchev June 30, 2026 21:59
@roxanneskelly roxanneskelly marked this pull request as ready for review June 30, 2026 21:59
@roxanneskelly roxanneskelly changed the base branch from develop to release/26.3 July 1, 2026 21:35
@akleshchev

Copy link
Copy Markdown
Contributor

changed the base branch from develop to release/26.3

Looks like it included a bunch of changes from develop that shouldn't be here.

roxanneskelly and others added 2 commits July 7, 2026 10:14
- Update libwebrtc to version m144 (autobuild.xml).
- Use WebRTC's software APM exclusively; disable built-in (hardware/OS)
  AEC/AGC/NS, including after each device (re)deploy.
- Only run the output device once a peer connection's audio is established
  (and bring devices up with the user's selected device at that point),
  fixing the buzz heard before/without an active connection.
- Keep capture warm across mute/unmute to avoid the AEC cold-start hiss;
  stop recording 30s after a sustained mute so the OS mic indicator clears.
- Reliably (re)select and (re)start capture/playout after teleport or
  voice restart so audio sends/records again.
- Don't suspend the voice channel when entering tuning mode (Vivox-era
  behavior that dropped the peer connection).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Mute now zeroes captured gain and disables the sender tracks instead of
stopping the capture device, so unmuting no longer cold-starts the AEC
(no hiss) and Bluetooth devices no longer drop/restart as they switch
between mono and stereo.

Capture is gated on voice being enabled rather than on mute: it starts
when voice is enabled and runs across calls and mute/unmute, and is
released when voice is disabled (setVoiceEnabled). Playout stays gated on
there being a connection to render. As a result the OS "mic in use"
indicator is on for the length of the session and only clears when voice
is disabled.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@roxanneskelly roxanneskelly requested a review from a team July 7, 2026 20:42
@roxanneskelly roxanneskelly merged commit 4452ec6 into release/26.3 Jul 7, 2026
12 checks passed
@roxanneskelly roxanneskelly deleted the roxie/webrtc-m144 branch July 7, 2026 21:02
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 7, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

2 participants